//第一题 动态给 data 增加的成员是否是响应式数据，如果不是的话，如何把新增成员设置成响应式数据，它的内部原理是什么。
/*
如果是2.0  则不是响应式的，因为劫持基于object.definproperty，该方法无法得知对象新增属性
可以通过Vue提供的this.$set(obj, key ,value) 的方式来新增监听
该方法是会判断当前的key值在obj中是否是响应式的，如果不是则调用defineReactive将key值变为响应式的，并通知watcher进行更新
*/

//第二题 diff执行过程
/*
假设有旧的Vnode数组和新的Vnode数组这两个数组,而且有四个变量充当指针分别指到两个数组的头尾.

重复下面的对比过程，直到两个数组中任一数组的头指针超过尾指针，循环结束 :

头头对比: 对比两个数组的头部，如果找到，把新节点patch到旧节点，头指针后移
尾尾对比: 对比两个数组的尾部，如果找到，把新节点patch到旧节点，尾指针前移
旧尾新头对比: 交叉对比，旧尾新头，如果找到，把新节点patch到旧节点，旧尾指针前移，新头指针后移
旧头新尾对比: 交叉对比，旧头新尾，如果找到，把新节点patch到旧节点，新尾指针前移，旧头指针后移
利用key对比: 用新指针对应节点的key去旧数组寻找对应的节点。这里分三种情况,当没有对应的key，那么创建新的节点,如果有key并且是相同的节点，把新节点patch到旧节点,如果有key但是不是相同的节点，则创建新节点

在上述循环结束后,两个数组中可能存在未遍历完的情况: 循环结束后，
先对比旧数组的头尾指针，如果旧数组遍历完了，添加新数组中漏掉的节点
再对比新数组的头尾指针，如果新数组遍历完了（可能旧数组没遍历完，有漏删除的问题），删除旧数组中漏掉的节点
 */